package com.example.scanidcard;

import android.util.Base64;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;

// Base64Util工具类：提供 Base64 编码功能
// 主要用于将输入流（InputStream）或字节数组（byte[]）编码为 Base64 格式
public class Base64Util {

    // 将InputStream数据转换为Base64编码字符串
    public static String encodeBase64(InputStream inputStream) {
        try {
            // 使用 ByteArrayOutputStream 缓存输入流的数据
            ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
            byte[] buffer = new byte[1024]; // 缓存区大小
            int len; // 读取到的字节数

            // 循环读取数据，直到读取完毕
            while ((len = inputStream.read(buffer)) != -1) {
                outputStream.write(buffer, 0, len);
            }

            // 将缓存的数据转换为 Base64 编码字符串
            return Base64.encodeToString(outputStream.toByteArray(), Base64.DEFAULT);
        } catch (Exception e) {
            e.printStackTrace();
            return null; // 异常返回null
        }
    }

    // 将字节数组 (byte[]) 转换为Base64编码字符串
    public static String encodeBase64(byte[] data) {
        return Base64.encodeToString(data, Base64.DEFAULT);
    }
}
